草庐IT

java - 在Java中动态加载一个类

全部标签

ruby-on-rails - 如何在 Ruby 中列出一个对象的所有方法?

如何列出特定对象有权访问的所有方法?我有一个@current_user对象,在应用程序Controller中定义:defcurrent_user@current_user||=User.find(session[:user_id])ifsession[:user_id]end并且想看看我在View文件中有哪些可用的方法。具体来说,我想看看:has_many关联提供了哪些方法。(我知道:has_many应该提供什么,但想检查一下。) 最佳答案 下面将列出User类有而Object基类没有的方法...>>User.methods-Obj

ruby-on-rails - RSpec:如何测试一个方法是否被调用?

在编写RSpec测试时,我发现自己写了很多看起来像这样的代码,以确保在执行测试期间调用了一个方法(为了争论,我只是说我真的不能查询调用后对象的状态,因为方法执行的操作不容易看到效果)。describe"#foo"it"shouldcall'bar'withappropriatearguments"docalled_bar=falsesubject.stub(:bar).with("anargumentIwant"){called_bar=true}subject.fooexpect(called_bar).tobe_trueendend我想知道的是:还有比这更好的语法吗?我是否缺少一些

ruby-on-rails - 在 Rails 中将时间从一个时区转换为另一个时区

我的created_at时间戳以UTC格式存储:>>Annotation.last.created_at=>Sat,29Aug200923:30:09UTC+00:00如何将其中之一转换为“东部时间(美国和加拿大)”(考虑到夏令时)?像这样的东西:Annotation.last.created_at.in_eastern_time 最佳答案 使用DateTime类的in_time_zone方法Loadingdevelopmentenvironment(Rails2.3.2)>>now=DateTime.now.utc=>Sun,06

ruby - 从一个方法返回两个或多个值

是否有可能从方法返回多个值?像这样:defsomeMethod()return["a",10,SomeObject.new]end[a,b,c]=someMethod 最佳答案 defsumdiff(x,y)returnx+y,x-yend#=>nilsumdiff(3,4)#=>[7,-1]a=sumdiff(3,4)#=>[7,-1]a#=>[7,-1]a,b=sumdiff(3,4)#=>[7,-1]a#=>7b#=>-1a,b,c=sumdiff(3,4)#=>[7,-1]a#=>7b#=>-1c#=>nil

Ruby:如何获取字符串的第一个字符

如何使用Ruby获取字符串中的第一个字符?最终,我所做的是采用某人的姓氏,并从中创建一个首字母。因此,如果字符串是“Smith”,我只需要“S”。 最佳答案 您可以使用Ruby的开放类来使您的代码更具可读性。例如,这个:classStringdefinitialself[0,1]endend将允许您对任何字符串使用initial方法。因此,如果您有以下变量:last_name="Smith"first_name="John"然后你就可以得到非常清晰易读的首字母:putsfirst_name.initial#printsJputsla

ruby - 如何让 Sinatra 在每次更改后自动重新加载文件?

我正在使用#my_app.rbload'index.rb'然后像这样启动服务器rubymy_app.rb但它永远不会重新加载我在索引页面中所做的任何更改。我在这里错过了什么吗? 最佳答案 参见SinatraFAQ,"HowdoImakemySinatraappreloadonchanges?"Firstoff,in-processcodereloadinginRubyishardandhavingasolutionthatworksforeveryscenarioistechnicallyimpossible.Whichiswhyw

ruby-on-rails - 如何在测试环境运行Rails控制台并加载test_helper.rb?

背景:我在使用Thoughtbot的“工厂女孩”gem时遇到了一些问题,该gem用于创建要在单元测试和其他测试中使用的对象。我想转到控制台并运行不同的FactoryGirl调用以检查发生了什么。例如,我想去那里做...>>Factory(:user).inspect我知道您可以在不同的环境中运行控制台...$脚本/控制台RAILS_ENV=test但是当我这样做时,工厂类不可用。看起来好像test_helper.rb没有加载。我尝试了各种require调用,包括一个带有到test_helper.rb的绝对路径的调用,但它们的失败与此类似:$script/consoleRAILS_ENV

ruby - 如何在 Ruby 中将字符串中的第一个字母大写

upcase方法将整个字符串大写,但我只需要将第一个字母大写。此外,我需要支持多种流行语言,例如德语和俄语。我该怎么做? 最佳答案 这取决于您使用的Ruby版本:Ruby2.4及更高版本:自Rubyv2.4.0以来,它就可以正常工作支持Unicode大小写映射:"мария".capitalize#=>МарияRuby2.3及更低版本:"maria".capitalize#=>"Maria""мария".capitalize#=>мария问题是,它并没有按照您的意愿执行,它输出的是мария而不是Мария。如果您使用的是Ra

ruby - 升级到 Capybara 2.0 后如何点击项目列表中的第一个链接?

在这种情况下如何点击第一个链接:AgreeAgreewithin".item"dofirst(:link,"Agree").clickend我得到这个错误:Capybara::Ambiguous:Ambiguousmatch,found2elementsmatchingcss".item"如果没有within我会得到这个错误:Failure/Error:first(:link,"Agree").clickNoMethodError:undefinedmethod`click'fornil:NilClass 最佳答案 你可以只使用:f

ruby-on-rails - Ruby on Rails 控制台在加载时挂起

无论出于何种原因,RubyonRails控制台拒绝启动;它只是挂起。我没有对我的代码做任何更改,其他使用相同版本的Ruby和RubyonRails的项目没有问题。当我最终Ctrl+C时,我得到了这个指向Spring的堆栈跟踪。我无法解释为什么这种情况时时刻刻都在发生,而它运行良好。我已经通过RVM清除了所有的gem,并通过bundle命令重新安装了所有的gem,但仍然没有成功。任何想法将不胜感激。据我所知,RubyonRails服务器也没有问题。该问题与项目相关,但没有更改任何代码,只有RubyonRails控制台有问题。ruby2.1.2rails4.1.4user_a@ubuntu